A. Field of the Invention
The present invention relates to solid geometric modeling system that are used for computer aided geometric design and computer aided manufacturing, and more particularly to methods of using a computer for calculating the intersection curves of two surfaces to facilitate the creation of correct NC data and the creation of new boundary faces.
B. The Prior Art
With the adventure of computers, computer aided design and computer aided manufacturing (CAD/CAM) became a subject of widespread interest. Since the 1960's, a lot of research and development have been conducted in this area. Recently, most of the research are directed toward the development of a solid geometric modeling system with boundary representation.
A solid geometric modeling system is a computer graphic system which is used to create solid objects. After an object is created, there are different ways to represent this object in a computer. If the system constructs and stores all the geometric information of the boundary surfaces of the object, then it is called a solid modeling system with boundary representation. The stored boundary information is called the boundary file of the solid. FIG. 7b represents a typical boundary file of a solid geometric modeling system.
There are also different ways to create a solid object. The most commonly used method is to combine simple primitives together to form a more complicated object. The set (Boolean) operations such as union intersection and difference are used for the combination. FIG. 8b illustrates the union operation performed by a solid geometric modeling system. In order to combine two objects A and B and calculate its boundary, the intersections of the boundary surfaces of A and B must be calculated. FIG. 9a shows the object before the boundary file is constructed and FIG. 9b shows the constructed boundary file. Hence, finding the intersection curves of two boundary surfaces, becomes a fundamental tool in constructing the boundary file of an object. Furthermore, once an object (or a part) is constructed (modeled), the boundary file stored in the database can be used to compute the cutter paths of a numerical controlled (NC) machine. And the computed data is used to drive the machine and produce the part automatically. In general, a cutter path of a NC machine is a curve C which lies on a boundary surface S of the part. And C can be defined as the intersection of two surfaces. One of the surface is S and the other is an offset surface of the boundary.
In the case of two complex surfaces, it is important to find all the intersection curves. Otherwise, the new boundary surface constructed by the set operation will not be correct and the target NC tool path may be missed in the automatic generation process. In generating a tool path, it is also important to check the position of the cutter such that at each step the cutter will not run into the surface and destroy the part. The distance (clearance) between the cutter surfaces and the boundary surfaces must be calculated at each step to insure the cutter is keeping a distance from the part.
FIG. 1 gives the overall structure of a solid geometric system with boundary file representation. The center bold block contains surface/surface intersection processor and distance finder. It performs multiple functions, including (1) to support the Boolean operation to construct the boundary file, (2) to generate the NC cutter path, (3) to check the clearance of the cutter motion and others.
The most difficult part in using a computer to calculate the surface/surface intersections is to find all the intersections without missing any curves and also without loosing the performance of the system. However, a closed form solution does not exist for the general surface/surface intersection problem. Also, the power series expansion (or the algebraic approximation) of a general surface at a local point cannot describe the entire surface. The global structure of the two surfaces must be known in order to locate all the intersection curves.
There are many different ways to solve this problem. For example, see "Surface/Surface Intersection Problems", M. J. Pratt & A. D. Geisow, 1987. A reasonable approach is to use polygons to approximate the two surfaces and use computer to calculate the rough intersection curves. In FIG. 10, the cylinder is approximated by a set of planes. Then the intersection curve of the two surfaces is approximated by the intersections of the planes. This approach will work for many cases, but unfortunately it may fail to obtain the tangent curves or touching points or small intersection curves. This is due to the fact that by using the polygon approximations, the computer cannot obtain local detail information of the two given surfaces within finite steps and decompositions Other widely accepted methods such as using subdivision method or using uv-curves of the first surface to intersect the second surface, have the same deficiency.